Hello,
I am using Jedit4.3pre13 with TextTools-plugin 1.14 and have the following (minor)
problem:
In the Text-Tools options I only use the following option:
Insert line comment at start of line
In my Edit-mode I have specified the following lines:
<PROPS>
<PROPERTY NAME="lineComment" VALUE="* " />
</PROPS>
and in the Rules section I have:
<EOL_SPAN TYPE="COMMENT1" AT_LINE_START="TRUE">*</EOL_SPAN>
So whenever a "*" is at the start of the line this is highlighted as a comment. But
only a "* " should be recognized by toggle line comment as a comment.
This is very handy since it allows me to have line comments that are toggled and line
comment that are not toggled.
If, for example, one has the following code:
*permanent comment for the first block
code
*permanent comment for the second block
* alternative code that can be toggled
Now one can select the four lines and switch between the two line blocks of code by
applying (once) toggle line comment. The result would be the following:
* *permanent comment for the first block
* code
* *permanent comment for the second block
alternative code that can be toggled
Here, I found it disturbing that an additional space has been included by the toggle
line comment. Instead of the expected "* " a "* " has been included (with two white
spaces).
Note also that the actual text of the last line would be changed when twice toggled.
Certainly there are use-cases, where adding an additional space can be useful (in
these use-cases the space is a feature, not a bug). However I would be very please
if the inclusion of an additional space could be made optional - so one could choose
if the space is needed or not. In my use-case the extra space is clearly not needed
and leads to disturbing amount of space which encumbers readability.
Thanks a lot for providing the TextTools plugin. I have added the Toggle Line comment
to the context menu and use it all the time!
Submitted | goebbe - 2008-03-17 - 17:01:56z | Assigned | ian_lewis |
---|---|---|---|
Priority | 5 | Category | None |
Status | Open | Group | None |
Resolution | None | Visibility | No |
2008-03-18 - 02:25:19z ian_lewis |
Logged In: YES user_id=478898 Originator: NO It makes sense that it inserts it with two spaces since toggle line comment inserts the line comment value, which in your case includes an extra space, and an extra space character. I'm a bit wary of adding another option for such a one off use case (there are already 3 options pertaining to how toggle line comment behaves). I'd kind of prefer if it just acted in a "reasonable" way without having a bunch of options. Like maybe, if the line comment includes a space already, then don't add the extra space. I'll try a couple things and see what might work best. I'm not completely against adding a new option but in the interest of keeping it rather simple, I feel like I should avoid it if possible. |
---|---|
2008-03-18 - 10:11:46z goebbe |
Logged In: YES user_id=1050273 Originator: YES Thank a lot for the answer. Of course I understand your concerns about additional options. Actually it took me already some time to find out that there are options at all - and I was glad that I could adapt the behavior of the line comments to some extend. As a starting point I would like to develop what I had expected before applying the command called "toggle_line_comment" for the first time: a) First, I would guess that it works on a line per line basis (that is what line-comments are for) b) Second, I would guess that it stick to the property of the edit-file e.g. if <PROPERTY NAME="lineComment" VALUE="*" /> then I would expect the command to include simply a "*" (without extra whitespace, since the line comment does simply not include a space). c) Third, I would expect that applying the command twice to a line (or a block of lines) that I would always get back to the original text. Of course that is just me - and it is just taking reading the name of the command and thinking about what a command named goggle line comment will probably do. The following use cases would be covered by this simplest form of goggle line comments: 1. Someone has (manually) included a line comment (for one line) and wants to toggle the comment of the line 2. Someone has has one line of code and wants to toggle the line comment. 3. Someone has a mixture of (alternative) code lines (without "permanent" comments) and wants to toggle the line comments (e.g. switch between alternative blocks (lines) of code) The case that is more problematic is when it comes to the concept of "permanent"-line-comments i.e. line comments that should survive a toggle-line action. (obviously this is a very useful feature). The problem here is how to recognize "permanent" line comments, since without explicitly specifying, one needs to make assumptions / need heuristics which are likely to lead to unexpected results (from the users point of view) in some use-cases. Perhaps the following could provide a solid approach: - Stick to the simple approach - Introduce explicitly the concept of permanent line comments that can be configured by the user in the plugin- options. (I would not activate permanent line comments by default ) - One could use a sensible default proposal. e.g. twice the line comment as a default proposal (in my example: "**" for permanent instead of "*" for standard line comments. If (and only if :-) ) still needded for some use-cases: - Introduce a "new" command called "toggle line comment blockwise". I think this title would make it clear what can be expected form the command. Here one needs some assumptions/rules/heuristics to determine the current state of a block, especially when the block contains a mixture of commented and uncommented lines. The proposed solution would have the virtue of being at the same time simple, easy to understand, user-configurable , serve a wide range of use cases and programming styles at the same time, respect the line comment that is specified by the property-tags in the Mode-files and make "toggle line comments blockwise" an alternative that can be applied without changing the plugin-options. Example: If the following code is selected and we apply the toggle line comment (with permanent line comment option on) **permanent line comment *code1 *code1 **permanent line comment code2 One should get: **permanent line comment code1 code1 **permanent line comment *code2 Sorry this text is much longer than it should be. Since I have no Java-skills at all I have not idea if my proposal could be implemented with a reasonable amount of work and perhaps there is a major oversight somewhere? Anyway, thanks a lot for providing the TextTolls-plugin and keep up the great work. |